package com.jinunn.hosp.service;

import com.atguigu.yygh.model.hosp.Schedule;
import com.atguigu.yygh.vo.hosp.ScheduleOrderVo;
import com.atguigu.yygh.vo.hosp.ScheduleQueryVo;
import com.atguigu.yygh.vo.order.SignInfoVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * @author JinDnn
 * @date 2021/4/29 22:52
 */

public interface ScheduleService extends IService<Schedule> {
    /**
     *  添加排版接口
     */
    void save(Map<String, Object> switchMap);

    /**
     * 查询排版接口
     */
    Page<Schedule> findPageSchedule(int page, int limit, ScheduleQueryVo scheduleQueryVo);

    /**
     * 删除排班
     * @param hosScheduleId 排版编号
     * @param hoscode 医院编号
     */
    void remove(String hosScheduleId, String hoscode);

    /**
     * 查询排班的规则数据
     * @param page 当前业
     * @param limit 每页记录数
     * @param hosCode 医院编号
     * @param depCode 科室编号
     * @return 排班的规则数据
     */
    Map<String, Object> getScheduleRule(Integer page, Integer limit, String hosCode, String depCode);

    /**
     * 查询排版详情
     * @param hosCode 医院编号
     * @param depCode 科室编号
     * @param workDate 工种日期
     * @return 查询排版详情
     */
    List<Schedule> getScheduleDetail(String hosCode, String depCode, String workDate);

    /**
     * 获取可预约排班数据
     * @param page  当前页
     * @param limit 每页记录数
     * @param hoscode 医院编号
     * @param depcode 科室编号
     * @return 可预约的排版数据
     */
    Map<String, Object> getBookingScheduleRule(Integer page, Integer limit, String hoscode, String depcode);

    /**
     * 根据排班id获取排班数据
     * @param scheduleId  排班id
     * @return 排版数据
     */
    Schedule getScheduleById(String scheduleId);

    /**
     * 根据排班id获取预约下单数
     * @param scheduleId  排版id
     * @return 预约下单数
     */
    ScheduleOrderVo getScheduleOrder(Long scheduleId);

}
